/*----------------------------------------------------------------------------*\
|
|						Public Interface to MuseX Technology
|
|							     www.musex.com
| Author : SunJun 
| Email : sundoom@msn.com
\*----------------------------------------------------------------------------*/

//////////////////////////////////////////////////////////////////////////
// $Id: Application.h,v 1.1 2008/12/20 12:20:36 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#ifndef __Application__
#define __Application__

//////////////////////////////////////////////////////////////////////////

#include "Local.h"

//////////////////////////////////////////////////////////////////////

class Application : public MReference
{
public:
	// constructor
	Application();
	
	// destructor
	virtual ~Application();

	// the application's run method.
	VOID run();

private:
	BOOL mFullscreen;	
	U32 mWindowWidth, mWindowHeight;
	U32 mColorBits, mDepthBits;
	U32 mFrequency;
	F32 mFov, mAspect, mZNear, mZFar;
	Vector3 mEye, mCenter, mUp;

	WindowPtr mWndPtr;
	GraphPtr mGraphPtr;
	RenderTexturePtr mRT0Ptr, mRT1Ptr;
	DepthSurfacePtr mDSPtr;
	PrimitivePtr mPrimitivePtr;
	MeshPtr mMeshPtr;

	Dict::KeyPtr mWVPPtr;
};

//////////////////////////////////////////////////////////////////////////

typedef MPtr<Application>ApplicationPtr;

//////////////////////////////////////////////////////////////////////

#endif
